4chan_sciencefandomcom-20200214-history
Programming Textbook Recommendations
Scientific and Array Based Languages Matlab * Matlab: A Practical Introduction to Programming and Problem Solving by Attaway * MATLAB Guide by Desmond Higham and Nicholas Higham * Numerical Computing with MATLAB by Moler Fortran * Fortran 95/2003 for Scientists & Engineers by Chapman * Guide to Fortran 2008 Programming by Brainerd * Modern Fortran Explained by Metcalf, Reid, and Cohen (or the older Fortran 95/2003 Explained) * Modern Fortran in Practice by Markus J * Learning J: An Introduction to the J Programming Language by Stokes * J for C Programmers by Rich General Purpose Languages C++ * Programming: Principles and Practice Using C++ by Stroustrup * C++ Primer by Lippman, Lajoie, and Moo * Discovering Modern C++: An Intensive Course for Scientists, Engineers, and Programmers by Gottschling * The C++ Standard Library: A Tutorial and Reference by Josuttis * The C++ Programming Language by Stroustrup C Why The Programming Language C Is Obsolete * C Programming: A Modern Approach By King * Modern C by Jens Gustedt * C Programming Language by Kernighan and Ritchie * The C Standard Library by Plauger * Expert C Programming: Deep C Secrets By Linden Scripting Languages Lua * Programming in Lua by Ierusalimschy * Lua Programming Gems by de Figueiredo, Celes, Ierusalimschy Python On Windows, the easiest way to install Python along with the common libraries like NumPy, SciPy, Sympy, Matplotlib, and Pandas and IDEs like IPython (Notebook similar to Maple or Mathematica's notebooks) and Spyder (similar to Matlab's IDE) is to use WinPython. * "Think Python: How to Think Like a Computer Scientist" and "Think Complexity" by Downey * A Primer on Scientific Programming with Python by Langtangen [Website] * Automate the Boring Stuff with Python: Practical Programming for Total Beginners by Al Sweigart * Python Scripting for Computational Science by Langtangen [Website] References * Learning SciPy for Numerical and Scientific Computing by Blanco-Silva * IPython Interactive Computing and Visualization Cookbook by Rossant * Python Essential Reference by Beazley Stack-Oriented Languages Forth * Starting Forth by Brodie * Forth Application Techniques by Rather * Forth Programmer's Handbook by Conklin and Rather * Thinking Forth by Brodie Functional Languages Lisp/Scheme/Racket * How to Design Programs: An Introduction to Programming and Computing by Felleisen, Findler, Flatt, and Krishnamurthi * "The Little Schemer" and "The Seasoned Schemer" by Friedman and Felleisen * The Scheme Programming Language by Dybvig https://www.scheme.com/tspl4/ Free * The Racket Guide by Flatt and Findler Haskell * Programming in Haskell by Hutton * Haskell: The Craft of Functional Programming by Thompson * Real World Haskell by O'Sullivan, Stewart, and Goerzen * Parallel and Concurrent Programming in Haskell by Marlow Standard ML * Programming in Standard ML by Harper * ML for the Working Programmer by Paulson [Errata] * Concurrent Programming in ML by Reppy OCaml * "OCaml from the Very Beginning" and "More OCaml: Algorithms, Methods, and Diversions" by Whitington [Errata] * Real World OCaml: Functional Programming for the Masses by Minsky, Madhavapeddy, and Hickey * Developing Applications with Objective Caml by Chailloux, Manoury and Pagano * Using, Understanding, and Unraveling The OCaml Language: From Practice to Theory and vice versa by Rémy Logic Languages Prolog * Programming in Prolog by Clocksin and Mellish * Prolog Programming for Artificial Intelligence by Bratko * The Art of Prolog: Advanced Programming Techniques by Sterling and Shapiro * The Practice of Prolog by Sterling * The Craft of Prolog by O'Keefe